package com.su.controller;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.su.tools.DaoSupport1;
import com.su.tools.PageData;

import net.sf.json.JSONObject;

@Service("itemService")
public class ItemService {

	@Resource(name = "daoSupport1")
	private DaoSupport1 dao;
	private JSONObject json = new JSONObject();
	private PageData retPd;
	private List<PageData> retListPd;

	public JSONObject invoke(PageData pd) throws Exception {

		if (pd.getString("params").equals("IM101")) {
			this.IM101(pd);
		} else if (pd.getString("params").equals("IM102")) {
			this.IM102(pd);
		} else if (pd.getString("params").equals("IM103")) {
			this.IM103(pd);
		} else if (pd.getString("params").equals("IM104")) {
			this.IM104(pd);
		} else if (pd.getString("params").equals("IM105")) {
			this.IM105(pd);
		} else if (pd.getString("params").equals("IM106")) {
			this.IM106(pd);
		} else if (pd.getString("params").equals("IM107")) {
			this.IM107(pd);
		} else if (pd.getString("params").equals("IM108")) {
			this.IM108(pd);
		} else if (pd.getString("params").equals("IM109")) {
			this.IM109(pd);
		} else if (pd.getString("params").equals("IM110")) {
			this.IM110(pd);
		} else if (pd.getString("params").equals("IM111")) {
			this.IM111(pd);
		} else if (pd.getString("params").equals("IM112")) {
			this.IM112(pd);
		} else if (pd.getString("params").equals("IM113")) {
			this.IM113(pd);
		} else if (pd.getString("params").equals("IM114")) {
			this.IM114(pd);
		} else if (pd.getString("params").equals("IM115")) {
			this.IM115(pd);
		} else {
			json.put("code", "100");
			json.put("msg", "没有找到该业务代码");
			return json;
		}
		return json;
	}

	/**
	 * 获取项目列表
	 * 
	 * @param pd
	 */
	private void IM101(PageData pd) throws Exception {
		retListPd = dao.getList("ItemMapper.countItem", pd);
		int total = retListPd.size();
		retListPd = dao.getList("ItemMapper.getItemList", pd);
		json.put("total", total);
		json.put("rows", retListPd);
	}

	/**
	 * 获取项目大类、婚姻、性别、项目状态
	 * 
	 * @param pd
	 * @throws Exception
	 */
	private void IM102(PageData pd) throws Exception {
		retListPd = dao.getList("ItemMapper.getHCategory", pd);
		json.put("hcategory", retListPd);
/*		retListPd = dao.getList("ItemMapper.getItemCategoryList", pd);
		json.put("category", retListPd);*/
		retListPd = dao.getList("ItemMapper.getStatus", pd);
		json.put("status", retListPd);
		retListPd = dao.getList("ItemMapper.getSex", pd);
		json.put("sex", retListPd);
		retListPd = dao.getList("ItemMapper.getMarriage", pd);
		json.put("marriage", retListPd);
	}

	/**
	 * 保存项目
	 * 
	 * @param pd
	 * @throws Exception
	 */
	private void IM103(PageData pd) throws Exception {
		String action = pd.getString("action");
		Date d = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String dateNow = sdf.format(d);
		pd.put("CREATE_DATE", dateNow);
		int rows = 0;
		if (action.equals("add")) {
			rows = dao.insert("ItemMapper.insertItem", pd);
		} else {
			rows = dao.update("ItemMapper.updateItem", pd);
		}
		if (rows > 0) {
			json.put("status", "true");
		} else {
			json.put("status", "false");
		}
	}

	/**
	 * 获取项目信息
	 * 
	 * @param pd
	 * @throws Exception
	 */
	private void IM104(PageData pd) throws Exception {
		retPd = dao.getOne("ItemMapper.getItemOne", pd);
		if(retPd!=null){
			json.put("status", "true");
			json.put("result", retPd);
		}else{
			json.put("status", "false");
			json.put("result", retPd);
		}		
	}

	/**
	 * 删除项目
	 * 
	 * @param pd
	 * @throws Exception
	 */
	private void IM105(PageData pd) throws Exception {
		String codeList = pd.getString("codeList");
		String[] codeArray = codeList.split(",");
		int rows = dao.delete("ItemMapper.delItem", codeArray);
		if (rows > 0) {
			json.put("status", "true");
		} else {
			json.put("status", "false");
		}
	}

	/**
	 * 修改项目状态
	 * 
	 * @param pd
	 * @throws Exception
	 */
	private void IM106(PageData pd) throws Exception {
		int rows=dao.update("ItemMapper.updateStatus", pd);
		if (rows > 0) {
			json.put("status", "true");
		} else {
			json.put("status", "false");
		}
	}
	/**
	 * 审核项目
	 * 
	 * @param pd
	 * @throws Exception
	 */
	private void IM107(PageData pd) throws Exception {
		String codeList = pd.getString("codeList");
		String[] codeArray = codeList.split(",");
		int rows=dao.update("ItemMapper.reviewItem", codeArray);
		if (rows > 0) {
			json.put("status", "true");
		} else {
			json.put("status", "false");
		}
	}
	
	/**
	 * 发布项目
	 * 
	 * @param pd
	 * @throws Exception
	 */
	private void IM108(PageData pd) throws Exception {
		String codeList = pd.getString("codeList");
		String[] codeArray = codeList.split(",");
		int rows=dao.update("ItemMapper.releaseItem", codeArray);
		if (rows > 0) {
			json.put("status", "true");
		} else {
			json.put("status", "false");
		}
	}
	
	/**
	 * 招满项目
	 * 
	 * @param pd
	 * @throws Exception
	 */
	private void IM109(PageData pd) throws Exception {
		String codeList = pd.getString("codeList");
		String[] codeArray = codeList.split(",");
		int rows=dao.update("ItemMapper.fillItem", codeArray);
		if (rows > 0) {
			json.put("status", "true");
		} else {
			json.put("status", "false");
		}
	}
	/**
	 * 停用项目
	 * 
	 * @param pd
	 * @throws Exception
	 */
	private void IM110(PageData pd) throws Exception {
		String codeList = pd.getString("codeList");
		String[] codeArray = codeList.split(",");
		int rows=dao.update("ItemMapper.stopItem", codeArray);
		if (rows > 0) {
			json.put("status", "true");
		} else {
			json.put("status", "false");
		}
	}
	/**
	 * 查看项目申请
	 * 
	 * @param pd
	 * @throws Exception
	 */
	private void IM111(PageData pd) throws Exception {
		retListPd = dao.getList("ItemMapper.countApplicationItem", pd);
		int total = retListPd.size();
		retListPd = dao.getList("ItemMapper.getApplicationItem", pd);
		json.put("total", total);
		json.put("rows", retListPd);
	}
	
	/**
	 * 查看项目申请人员
	 * 
	 * @param pd
	 * @throws Exception
	 */
	private void IM112(PageData pd) throws Exception {
		retListPd = dao.getList("ItemMapper.countItemApplyUser", pd);
		int total = retListPd.size();
		retListPd = dao.getList("ItemMapper.getItemApplyUser", pd);
		json.put("total", total);
		json.put("rows", retListPd);
	}

	//获取婚姻、性别等信息
	private void IM113(PageData pd) throws Exception {
		retListPd = dao.getList("ItemMapper.getSex", pd);
		json.put("sex", retListPd);
		retListPd = dao.getList("ItemMapper.getMarriage", pd);
		json.put("marriage", retListPd);
	}
	
	//获取项目类别
	private void IM114(PageData pd) throws Exception {
		retListPd = dao.getList("ItemMapper.getItemCategoryList", pd);
		json.put("category", retListPd);
	}
	
	//获取项目编码（最大值）
	private void IM115(PageData pd) throws Exception {
		retPd = dao.getOne("ItemMapper.getMaxItemCode", pd);
		String MAX_CODE="";
		if (retPd == null) {
			MAX_CODE = "1";
		} else {
			MAX_CODE = retPd.get("MAX_CODE").toString();
		}
		json.put("MAX_CODE", MAX_CODE);
	}

}
